/*
 * GUI.h
 *
 *  Created on: Jul 24, 2010
 *      Author: Ry
 */

#ifndef GUI_H_
#define GUI_H_

#include <iostream>
#include <vector>
#include "Component.h"

/**
 * Base class for GUI implementations
 */
class GUI {
protected:
	std::vector<Component*> components;
public:
	GUI();
	Component *add(Component *component);

	void destroy(Component *component);

	virtual void draw() = 0;

	std::vector<Component*> getComponents() const {
		return components;
	}

	void setComponents(std::vector<Component*> components) {
		this->components = components;
	}

	virtual ~GUI();
};

#endif /* GUI_H_ */
